#include <iostream>
#include <string>

using namespace std;

// 声明数据对象
typedef struct Elenemt_data
{
    string name; // 姓名
    string sex;    // 性别
    int age;        // 年纪
    int id;         // 学号
    int sco;        // 成绩
}Elenemt_data;


template<class T>
class Student
{
public:
    T data[128];
    int len;


    Student( ) 
    {
        len = 0;
    }
    Student(T data)
    {
        this->data[0] = data;
        len = 1;
    }
    ~Student( ) {}

public:
    void show()
    {
        cout << this->data[0] << endl;
    }
};


template<typename T>
void func(Student<T> S1)
{
    cout << typeid(T).name() << endl;
}




int main(int argc, char const *argv[])
{
    Elenemt_data data;
    data.name = "张三";
    data.sex = "男";
    Student<Elenemt_data> S1;

    // S1.show();

    func(S1);
    
    
    return 0;
}
